// 云函数模板
// 部署：在 cloud-functions/login 文件夹右击选择 "上传并部署"

const cloud = require('wx-server-sdk')

// 初始化 cloud
cloud.init({
  // API 调用都保持和云函数当前所在环境一致
  env: cloud.DYNAMIC_CURRENT_ENV
})

const db = cloud.database()

/**
 * 这个示例将经自动鉴权过的小程序用户 openid 返回给小程序端
 * 
 * event 参数包含小程序端调用传入的 data
 * 
 */
exports.main = async (event, context) => {
  const { username, password } = event

  try {
    // 检查是否是管理员或保安的固定账号
    if (username === 'admin' && password === 'adminpasswd') {
      return {
        success: true,
        userInfo: {
          username: 'admin',
          role: 'admin',
          name: '管理员'
        }
      }
    }

    if (username === 'baoan' && password === 'baoanpasswd') {
      return {
        success: true,
        userInfo: {
          username: 'baoan',
          role: 'security',
          name: '保安'
        }
      }
    }

    // 查询业主用户
    const { data: users } = await db.collection('users')
      .where({
        username: username,
        password: password, // 实际应用中应该使用加密密码
        role: 'owner'
      })
      .get()

    if (users.length === 0) {
      return {
        success: false,
        message: '用户名或密码错误'
      }
    }

    const userInfo = users[0]
    return {
      success: true,
      userInfo: {
        _id: userInfo._id,
        username: userInfo.username,
        role: userInfo.role,
        name: userInfo.name,
        roomNumber: userInfo.roomNumber,
        phone: userInfo.phone
      }
    }

  } catch (error) {
    console.error(error)
    return {
      success: false,
      message: '登录失败，请重试'
    }
  }
}

